! function () {
	var r = null;
	(function () {
		function X(e) {
			function j() {
				try {
					J.doScroll("left")
				} catch (e) {
					P(j, 50);
					return
				}
				w("poll")
			}

			function w(j) {
				if (!(j.type == "readystatechange" && x.readyState != "complete") && ((j.type == "load" ? n : x)[z](i + j.type, w, !1), !m && (m = !0))) e.call(n, j.type || j)
			}
			var Y = x.addEventListener,
				m = !1,
				C = !0,
				t = Y ? "addEventListener" : "attachEvent",
				z = Y ? "removeEventListener" : "detachEvent",
				i = Y ? "" : "on";
			if (x.readyState == "complete") e.call(n, "lazy");
			else {
				if (x.createEventObject && J.doScroll) {
					try {
						C = !n.frameElement
					} catch (A) {}
					C && j()
				}
				x[t](i + "DOMContentLoaded",
					w, !1);
				x[t](i + "readystatechange", w, !1);
				n[t](i + "load", w, !1)
			}
		}

		function Q() {
			S && X(function () {
				var e = K.length;
				$(e ? function () {
					for (var j = 0; j < e; ++j)(function (e) {
						P(function () {
							n.exports[K[e]].apply(n, arguments)
						}, 0)
					})(j)
				} : void 0)
			})
		}
		for (var n = window, P = n.setTimeout, x = document, J = x.documentElement, L = x.head || x.getElementsByTagName("head")[0] || J, z = "", A = x.scripts, m = A.length; --m >= 0;) {
			var M = A[m],
				T = M.src.match(/^[^#?]*\/run_prettify\.js(\?[^#]*)?(?:#.*)?$/);
			if (T) {
				z = T[1] || "";
				M.parentNode.removeChild(M);
				break
			}
		}
		var S = !0,
			D = [],
			N = [],
			K = [];
		z.replace(/[&?]([^&=]+)=([^&]+)/g, function (e, j, w) {
			w = decodeURIComponent(w);
			j = decodeURIComponent(j);
			j == "autorun" ? S = !/^[0fn]/i.test(w) : j == "lang" ? D.push(w) : j == "skin" ? N.push(w) : j == "callback" && K.push(w)
		});
		m = 0;
		for (z = D.length; m < z; ++m)(function () {
			var e = x.createElement("script");
			e.onload = e.onerror = e.onreadystatechange = function () {
				if (e && (!e.readyState || /loaded|complete/.test(e.readyState))) e.onerror = e.onload = e.onreadystatechange = r, --R, R || P(Q, 0), e.parentNode && e.parentNode.removeChild(e), e = r
			};
			e.type =
				"text/javascript";
			e.src = "file:///android_asset/lang-" + encodeURIComponent(D[m]) + ".js";
			L.insertBefore(e, L.firstChild)
		})(D[m]);
		for (var R = D.length, A = [], m = 0, z = N.length; m < z; ++m) A.push("file:///android_asset/" + encodeURIComponent(N[m]) + ".css");
		A.push("file:///android_asset/prettify.css");
		(function (e) {
			function j(m) {
				if (m !== w) {
					var n = x.createElement("link");
					n.rel = "stylesheet";
					n.type = "text/css";
					if (m + 1 < w) n.error =
						n.onerror = function () {
							j(m + 1)
						};
					n.href = e[m];
					L.appendChild(n)
				}
			}
			var w = e.length;
			j(0)
		})(A);
		var $ = function () {
			window.PR_SHOULD_USE_CONTINUATION = !0;
			var e;
			(function () {
				function j(a) {
					function d(f) {
						var b = f.charCodeAt(0);
						if (b !== 92) return b;
						var a = f.charAt(1);
						return (b = i[a]) ? b : "0" <= a && a <= "7" ? parseInt(f.substring(1), 8) : a === "u" || a === "x" ? parseInt(f.substring(2), 16) : f.charCodeAt(1)
					}

					function h(f) {
						if (f < 32) return (f < 16 ? "\\x0" : "\\x") + f.toString(16);
						f = String.fromCharCode(f);
						return f === "\\" || f === "-" || f === "]" || f === "^" ? "\\" + f :
							f
					}

					function b(f) {
						var b = f.substring(1, f.length - 1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),
							f = [],
							a = b[0] === "^",
							c = ["["];
						a && c.push("^");
						for (var a = a ? 1 : 0, g = b.length; a < g; ++a) {
							var k = b[a];
							if (/\\[bdsw]/i.test(k)) c.push(k);
							else {
								var k = d(k),
									o;
								a + 2 < g && "-" === b[a + 1] ? (o = d(b[a + 2]), a += 2) : o = k;
								f.push([k, o]);
								o < 65 || k > 122 || (o < 65 || k > 90 || f.push([Math.max(65, k) | 32, Math.min(o, 90) | 32]), o < 97 || k > 122 || f.push([Math.max(97, k) & -33, Math.min(o, 122) & -33]))
							}
						}
						f.sort(function (f, a) {
							return f[0] -
								a[0] || a[1] - f[1]
						});
						b = [];
						g = [];
						for (a = 0; a < f.length; ++a) k = f[a], k[0] <= g[1] + 1 ? g[1] = Math.max(g[1], k[1]) : b.push(g = k);
						for (a = 0; a < b.length; ++a) k = b[a], c.push(h(k[0])), k[1] > k[0] && (k[1] + 1 > k[0] && c.push("-"), c.push(h(k[1])));
						c.push("]");
						return c.join("")
					}

					function e(f) {
						for (var a = f.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g), c = a.length, d = [], g = 0, k = 0; g < c; ++g) {
							var o = a[g];
							o === "(" ? ++k : "\\" === o.charAt(0) && (o = +o.substring(1)) && (o <= k ? d[o] = -1 : a[g] = h(o))
						}
						for (g =
							1; g < d.length; ++g) - 1 === d[g] && (d[g] = ++j);
						for (k = g = 0; g < c; ++g) o = a[g], o === "(" ? (++k, d[k] || (a[g] = "(?:")) : "\\" === o.charAt(0) && (o = +o.substring(1)) && o <= k && (a[g] = "\\" + d[o]);
						for (g = 0; g < c; ++g) "^" === a[g] && "^" !== a[g + 1] && (a[g] = "");
						if (f.ignoreCase && F)
							for (g = 0; g < c; ++g) o = a[g], f = o.charAt(0), o.length >= 2 && f === "[" ? a[g] = b(o) : f !== "\\" && (a[g] = o.replace(/[A-Za-z]/g, function (a) {
								a = a.charCodeAt(0);
								return "[" + String.fromCharCode(a & -33, a | 32) + "]"
							}));
						return a.join("")
					}
					for (var j = 0, F = !1, l = !1, I = 0, c = a.length; I < c; ++I) {
						var p = a[I];
						if (p.ignoreCase) l = !0;
						else if (/[a-z]/i.test(p.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi, ""))) {
							F = !0;
							l = !1;
							break
						}
					}
					for (var i = {
							b: 8,
							t: 9,
							n: 10,
							v: 11,
							f: 12,
							r: 13
						}, q = [], I = 0, c = a.length; I < c; ++I) {
						p = a[I];
						if (p.global || p.multiline) throw Error("" + p);
						q.push("(?:" + e(p) + ")")
					}
					return RegExp(q.join("|"), l ? "gi" : "g")
				}

				function m(a, d) {
					function h(a) {
						var c = a.nodeType;
						if (c == 1) {
							if (!b.test(a.className)) {
								for (c = a.firstChild; c; c = c.nextSibling) h(c);
								c = a.nodeName.toLowerCase();
								if ("br" === c || "li" === c) e[l] = "\n", F[l << 1] = j++, F[l++ << 1 | 1] = a
							}
						} else if (c ==
							3 || c == 4) c = a.nodeValue, c.length && (c = d ? c.replace(/\r\n?/g, "\n") : c.replace(/[\t\n\r ]+/g, " "), e[l] = c, F[l << 1] = j, j += c.length, F[l++ << 1 | 1] = a)
					}
					var b = /(?:^|\s)nocode(?:\s|$)/,
						e = [],
						j = 0,
						F = [],
						l = 0;
					h(a);
					return {
						a: e.join("").replace(/\n$/, ""),
						d: F
					}
				}

				function n(a, d, h, b) {
					d && (a = {
						a: d,
						e: a
					}, h(a), b.push.apply(b, a.g))
				}

				function x(a) {
					for (var d = void 0, h = a.firstChild; h; h = h.nextSibling) var b = h.nodeType,
						d = b === 1 ? d ? a : h : b === 3 ? S.test(h.nodeValue) ? a : d : d;
					return d === a ? void 0 : d
				}

				function C(a, d) {
					function h(a) {
						for (var l = a.e, j = [l, "pln"], c =
								0, p = a.a.match(e) || [], m = {}, q = 0, f = p.length; q < f; ++q) {
							var B = p[q],
								y = m[B],
								u = void 0,
								g;
							if (typeof y === "string") g = !1;
							else {
								var k = b[B.charAt(0)];
								if (k) u = B.match(k[1]), y = k[0];
								else {
									for (g = 0; g < i; ++g)
										if (k = d[g], u = B.match(k[1])) {
											y = k[0];
											break
										}
									u || (y = "pln")
								}
								if ((g = y.length >= 5 && "lang-" === y.substring(0, 5)) && !(u && typeof u[1] === "string")) g = !1, y = "src";
								g || (m[B] = y)
							}
							k = c;
							c += B.length;
							if (g) {
								g = u[1];
								var o = B.indexOf(g),
									H = o + g.length;
								u[2] && (H = B.length - u[2].length, o = H - g.length);
								y = y.substring(5);
								n(l + k, B.substring(0, o), h, j);
								n(l + k + o, g, A(y,
									g), j);
								n(l + k + H, B.substring(H), h, j)
							} else j.push(l + k, y)
						}
						a.g = j
					}
					var b = {},
						e;
					(function () {
						for (var h = a.concat(d), l = [], i = {}, c = 0, p = h.length; c < p; ++c) {
							var m = h[c],
								q = m[3];
							if (q)
								for (var f = q.length; --f >= 0;) b[q.charAt(f)] = m;
							m = m[1];
							q = "" + m;
							i.hasOwnProperty(q) || (l.push(m), i[q] = r)
						}
						l.push(/[\S\s]/);
						e = j(l)
					})();
					var i = d.length;
					return h
				}

				function t(a) {
					var d = [],
						h = [];
					a.tripleQuotedStrings ? d.push(["str", /^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,
						r, "'\""
					]) : a.multiLineStrings ? d.push(["str", /^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, r, "'\"`"]) : d.push(["str", /^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/, r, "\"'"]);
					a.verbatimStrings && h.push(["str", /^@"(?:[^"]|"")*(?:"|$)/, r]);
					var b = a.hashComments;
					b && (a.cStyleComments ? (b > 1 ? d.push(["com", /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, r, "#"]) : d.push(["com", /^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/,
						r, "#"
					]), h.push(["str", /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/, r])) : d.push(["com", /^#[^\n\r]*/, r, "#"]));
					a.cStyleComments && (h.push(["com", /^\/\/[^\n\r]*/, r]), h.push(["com", /^\/\*[\S\s]*?(?:\*\/|$)/, r]));
					if (b = a.regexLiterals) {
						var e = (b = b > 1 ? "" : "\n\r") ? "." : "[\\S\\s]";
						h.push(["lang-regex", RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*(" +
							("/(?=[^/*" + b + "])(?:[^/\\x5B\\x5C" + b + "]|\\x5C" + e + "|\\x5B(?:[^\\x5C\\x5D" + b + "]|\\x5C" + e + ")*(?:\\x5D|$))+/") + ")")])
					}(b = a.types) && h.push(["typ", b]);
					b = ("" + a.keywords).replace(/^ | $/g, "");
					b.length && h.push(["kwd", RegExp("^(?:" + b.replace(/[\s,]+/g, "|") + ")\\b"), r]);
					d.push(["pln", /^\s+/, r, " \r\n\t\u00a0"]);
					b = "^.[^\\s\\w.$@'\"`/\\\\]*";
					a.regexLiterals && (b += "(?!s*/)");
					h.push(["lit", /^@[$_a-z][\w$@]*/i, r], ["typ", /^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/, r], ["pln", /^[$_a-z][\w$@]*/i, r], ["lit", /^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,
						r, "0123456789"
					], ["pln", /^\\[\S\s]?/, r], ["pun", RegExp(b), r]);
					return C(d, h)
				}

				function z(a, d, h) {
					function b(a) {
						var c = a.nodeType;
						if (c == 1 && !j.test(a.className))
							if ("br" === a.nodeName) e(a), a.parentNode && a.parentNode.removeChild(a);
							else
								for (a = a.firstChild; a; a = a.nextSibling) b(a);
						else if ((c == 3 || c == 4) && h) {
							var d = a.nodeValue,
								i = d.match(m);
							if (i) c = d.substring(0, i.index), a.nodeValue = c, (d = d.substring(i.index + i[0].length)) && a.parentNode.insertBefore(l.createTextNode(d), a.nextSibling), e(a), c || a.parentNode.removeChild(a)
						}
					}

					function e(a) {
						function b(a, c) {
							var d = c ? a.cloneNode(!1) : a,
								f = a.parentNode;
							if (f) {
								var f = b(f, 1),
									h = a.nextSibling;
								f.appendChild(d);
								for (var e = h; e; e = h) h = e.nextSibling, f.appendChild(e)
							}
							return d
						}
						for (; !a.nextSibling;)
							if (a = a.parentNode, !a) return;
						for (var a = b(a.nextSibling, 0), d;
							(d = a.parentNode) && d.nodeType === 1;) a = d;
						c.push(a)
					}
					for (var j = /(?:^|\s)nocode(?:\s|$)/, m = /\r\n?|\n/, l = a.ownerDocument, i = l.createElement("li"); a.firstChild;) i.appendChild(a.firstChild);
					for (var c = [i], p = 0; p < c.length; ++p) b(c[p]);
					d === (d | 0) && c[0].setAttribute("value",
						d);
					var n = l.createElement("ol");
					n.className = "linenums";
					for (var d = Math.max(0, d - 1 | 0) || 0, p = 0, q = c.length; p < q; ++p) i = c[p], i.className = "L" + (p + d) % 10, i.firstChild || i.appendChild(l.createTextNode("\u00a0")), n.appendChild(i);
					a.appendChild(n)
				}

				function i(a, d) {
					for (var h = d.length; --h >= 0;) {
						var b = d[h];
						U.hasOwnProperty(b) ? V.console && console.warn("cannot override language handler %s", b) : U[b] = a
					}
				}

				function A(a, d) {
					if (!a || !U.hasOwnProperty(a)) a = /^\s*</.test(d) ? "default-markup" : "default-code";
					return U[a]
				}

				function D(a) {
					var d =
						a.h;
					try {
						var h = m(a.c, a.i),
							b = h.a;
						a.a = b;
						a.d = h.d;
						a.e = 0;
						A(d, b)(a);
						var e = /\bMSIE\s(\d+)/.exec(navigator.userAgent),
							e = e && +e[1] <= 8,
							d = /\n/g,
							i = a.a,
							j = i.length,
							h = 0,
							l = a.d,
							n = l.length,
							b = 0,
							c = a.g,
							p = c.length,
							t = 0;
						c[p] = j;
						var q, f;
						for (f = q = 0; f < p;) c[f] !== c[f + 2] ? (c[q++] = c[f++], c[q++] = c[f++]) : f += 2;
						p = q;
						for (f = q = 0; f < p;) {
							for (var x = c[f], y = c[f + 1], u = f + 2; u + 2 <= p && c[u + 1] === y;) u += 2;
							c[q++] = x;
							c[q++] = y;
							f = u
						}
						c.length = q;
						var g = a.c,
							k;
						if (g) k = g.style.display, g.style.display = "none";
						try {
							for (; b < n;) {
								var o = l[b + 2] || j,
									H = c[t + 2] || j,
									u = Math.min(o, H),
									E = l[b +
										1],
									W;
								if (E.nodeType !== 1 && (W = i.substring(h, u))) {
									e && (W = W.replace(d, "\r"));
									E.nodeValue = W;
									var Z = E.ownerDocument,
										s = Z.createElement("span");
									s.className = c[t + 1];
									var z = E.parentNode;
									z.replaceChild(s, E);
									s.appendChild(E);
									h < o && (l[b + 1] = E = Z.createTextNode(i.substring(u, o)), z.insertBefore(E, s.nextSibling))
								}
								h = u;
								h >= o && (b += 2);
								h >= H && (t += 2)
							}
						} finally {
							if (g) g.style.display = k
						}
					} catch (v) {
						V.console && console.log(v && v.stack || v)
					}
				}
				var V = window,
					G = ["break,continue,do,else,for,if,return,while"],
					O = [
						[G, "auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
						"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"
					],
					J = [O, "alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],
					K = [O, "abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],
					L = [K, "as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],
					O = [O, "debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],
					M = [G, "and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
					N = [G, "alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],
					R = [G, "as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],
					G = [G, "case,done,elif,esac,eval,fi,function,in,local,set,then,until"],
					Q = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,
					S = /\S/,
					T = t({
						keywords: [J, L, O, "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END", M, N, G],
						hashComments: !0,
						cStyleComments: !0,
						multiLineStrings: !0,
						regexLiterals: !0
					}),
					U = {};
				i(T, ["default-code"]);
				i(C([], [
					["pln", /^[^<?]+/],
					["dec", /^<!\w[^>]*(?:>|$)/],
					["com", /^<\!--[\S\s]*?(?:--\>|$)/],
					["lang-", /^<\?([\S\s]+?)(?:\?>|$)/],
					["lang-", /^<%([\S\s]+?)(?:%>|$)/],
					["pun", /^(?:<[%?]|[%?]>)/],
					["lang-",
						/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i
					],
					["lang-js", /^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],
					["lang-css", /^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],
					["lang-in.tag", /^(<\/?[a-z][^<>]*>)/i]
				]), ["default-markup", "htm", "html", "mxml", "xhtml", "xml", "xsl"]);
				i(C([
					["pln", /^\s+/, r, " \t\r\n"],
					["atv", /^(?:"[^"]*"?|'[^']*'?)/, r, "\"'"]
				], [
					["tag", /^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],
					["atn", /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
					["lang-uq.val", /^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],
					["pun", /^[/<->]+/],
					["lang-js", /^on\w+\s*=\s*"([^"]+)"/i],
					["lang-js", /^on\w+\s*=\s*'([^']+)'/i],
					["lang-js", /^on\w+\s*=\s*([^\s"'>]+)/i],
					["lang-css", /^style\s*=\s*"([^"]+)"/i],
					["lang-css", /^style\s*=\s*'([^']+)'/i],
					["lang-css", /^style\s*=\s*([^\s"'>]+)/i]
				]), ["in.tag"]);
				i(C([], [
					["atv", /^[\S\s]+/]
				]), ["uq.val"]);
				i(t({
					keywords: J,
					hashComments: !0,
					cStyleComments: !0,
					types: Q
				}), ["c", "cc", "cpp", "cxx", "cyc", "m"]);
				i(t({
					keywords: "null,true,false"
				}), ["json"]);
				i(t({
					keywords: L,
					hashComments: !0,
					cStyleComments: !0,
					verbatimStrings: !0,
					types: Q
				}), ["cs"]);
				i(t({
					keywords: K,
					cStyleComments: !0
				}), ["java"]);
				i(t({
					keywords: G,
					hashComments: !0,
					multiLineStrings: !0
				}), ["bash", "bsh", "csh", "sh"]);
				i(t({
					keywords: M,
					hashComments: !0,
					multiLineStrings: !0,
					tripleQuotedStrings: !0
				}), ["cv", "py", "python"]);
				i(t({
					keywords: "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",
					hashComments: !0,
					multiLineStrings: !0,
					regexLiterals: 2
				}), ["perl", "pl", "pm"]);
				i(t({
					keywords: N,
					hashComments: !0,
					multiLineStrings: !0,
					regexLiterals: !0
				}), ["rb", "ruby"]);
				i(t({
					keywords: O,
					cStyleComments: !0,
					regexLiterals: !0
				}), ["javascript", "js"]);
				i(t({
					keywords: "all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",
					hashComments: 3,
					cStyleComments: !0,
					multilineStrings: !0,
					tripleQuotedStrings: !0,
					regexLiterals: !0
				}), ["coffee"]);
				i(t({
					keywords: R,
					cStyleComments: !0,
					multilineStrings: !0
				}), ["rc", "rs", "rust"]);
				i(C([], [
					["str", /^[\S\s]+/]
				]), ["regex"]);
				var X = V.PR = {
					createSimpleLexer: C,
					registerLangHandler: i,
					sourceDecorator: t,
					PR_ATTRIB_NAME: "atn",
					PR_ATTRIB_VALUE: "atv",
					PR_COMMENT: "com",
					PR_DECLARATION: "dec",
					PR_KEYWORD: "kwd",
					PR_LITERAL: "lit",
					PR_NOCODE: "nocode",
					PR_PLAIN: "pln",
					PR_PUNCTUATION: "pun",
					PR_SOURCE: "src",
					PR_STRING: "str",
					PR_TAG: "tag",
					PR_TYPE: "typ",
					prettyPrintOne: function (a, d, e) {
						var b = document.createElement("div");
						b.innerHTML = "<pre>" + a + "</pre>";
						b = b.firstChild;
						e && z(b, e, !0);
						D({
							h: d,
							j: e,
							c: b,
							i: 1
						});
						return b.innerHTML
					},
					prettyPrint: e = e = function (a, d) {
						function e() {
							for (var b = V.PR_SHOULD_USE_CONTINUATION ? c.now() + 250 : Infinity; p < j.length && c.now() < b; p++) {
								for (var d = j[p], m = k, l = d; l = l.previousSibling;) {
									var n = l.nodeType,
										s = (n === 7 || n === 8) && l.nodeValue;
									if (s ? !/^\??prettify\b/.test(s) : n !== 3 || /\S/.test(l.nodeValue)) break;
									if (s) {
										m = {};
										s.replace(/\b(\w+)=([\w%+\-.:]+)/g, function (a, b, c) {
											m[b] = c
										});
										break
									}
								}
								l = d.className;
								if ((m !== k || f.test(l)) && !w.test(l)) {
									n = !1;
									for (s = d.parentNode; s; s = s.parentNode)
										if (g.test(s.tagName) && s.className && f.test(s.className)) {
											n = !0;
											break
										}
									if (!n) {
										d.className += " prettyprinted";
										n = m.lang;
										if (!n) {
											var n = l.match(q),
												A;
											if (!n && (A = x(d)) && u.test(A.tagName)) n = A.className.match(q);
											n && (n = n[1])
										}
										if (y.test(d.tagName)) s = 1;
										else var s = d.currentStyle,
											v = i.defaultView,
											s = (s = s ? s.whiteSpace : v && v.getComputedStyle ? v.getComputedStyle(d, r).getPropertyValue("white-space") : 0) && "pre" === s.substring(0, 3);
										v = m.linenums;
										if (!(v = v === "true" || +v)) v = (v = l.match(/\blinenums\b(?::(\d+))?/)) ? v[1] && v[1].length ? +v[1] : !0 : !1;
										v && z(d, v, s);
										t = {
											h: n,
											c: d,
											j: v,
											i: s
										};
										D(t)
									}
								}
							}
							p < j.length ?
								P(e, 250) : "function" === typeof a && a()
						}
						for (var b = d || document.body, i = b.ownerDocument || document, b = [b.getElementsByTagName("pre"), b.getElementsByTagName("code"), b.getElementsByTagName("xmp")], j = [], m = 0; m < b.length; ++m)
							for (var l = 0, n = b[m].length; l < n; ++l) j.push(b[m][l]);
						var b = r,
							c = Date;
						c.now || (c = {
							now: function () {
								return +new Date
							}
						});
						var p = 0,
							t, q = /\blang(?:uage)?-([\w.]+)(?!\S)/,
							f = /\bprettyprint\b/,
							w = /\bprettyprinted\b/,
							y = /pre|xmp/i,
							u = /^code$/i,
							g = /^(?:pre|code|xmp)$/i,
							k = {};
						e()
					}
				};
				typeof define === "function" && define.amd &&
					define("google-code-prettify", [], function () {
						return X
					})
			})();
			return e
		}();
		R || P(Q, 0)
	})();
}()